package com.xudu.usercenterbackend.controller;

import com.xudu.usercenterbackend.common.DeleteRequest;
import com.xudu.usercenterbackend.common.Result;
import com.xudu.usercenterbackend.model.dto.userdto.LoginRequest;
import com.xudu.usercenterbackend.model.dto.userdto.RegisterRequest;
import com.xudu.usercenterbackend.model.dto.userdto.SearchUserRequest;
import com.xudu.usercenterbackend.model.dto.userdto.UpdateUserRequest;
import com.xudu.usercenterbackend.model.vo.UserVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @className: UserController
 * @description: TODO
 * @author: xudu
 * @create: 2024-10-10
 */
@Api(tags = "用户模块")
public interface UserController {

    /**
     * 测试接口
     */
    @ApiOperation("测试接口")
    @GetMapping("/hello")
    Result hello();

    /**
     * 登陆接口
     */
    @ApiOperation("登陆接口")
    @PostMapping("/login")
    Result login(@RequestBody LoginRequest loginRequest) throws Exception;

    /**
     * 注册接口
     */
    @ApiOperation("注册接口")
    @PostMapping("/register")
    Result register(@RequestBody RegisterRequest registerRequest) throws Exception;

    /**
     * 退出接口
     */
    @ApiOperation("退出接口")
    @PostMapping("/logout")
    Result logout();

    /**
     * 分页查询用户信息接口
     */
    @ApiOperation("分页查询用户信息接口")
    @GetMapping("search/list/page")
    Result searchListPage(SearchUserRequest searchUserRequest);

    /**
     * 更新用户接口
     */
    @ApiOperation("更新用户接口")
    @PostMapping("/update")
    Result updateUser(UpdateUserRequest updateUserRequest);

    /**
     * 获取当前登陆用户信息接口
     */
    @ApiOperation("获取当前登陆用户信息接口")
    @GetMapping("/get/current")
    Result getCurrentUser();

    /**
     * 删除用户接口
     */
    @ApiOperation("删除用户接口")
    @PostMapping("/delete")
    Result deleteUser(@RequestBody Long id);
}
